#include<stdio.h>
#include<assert.h>

void* my_memcpy(void* dest,void* srouce,int num)
{
	void* ret = dest;
	while (num--)
	{
		*(char*)dest = *(char*)srouce;
		dest=(char*)dest+1;
		dest=(char*)srouce+1;
	}
	return ret;
}

void* My_memmove(void* dest, const void* src, int num)
{
	void *ret = dest;
	assert(dest && src);
		if (dest < src)
		{
			while (num--)
			{
				*(char*)dest = *(char*)src;
				dest = (char*)dest + 1;
				src = (char*)src + 1;
			}
		}
		else
		{
			while (num--)
			{
				*((char*)src + num) = *((char*)dest + num);
			}
		}

	return ret;
}

#pragma pack(1)
typedef struct Node
{
	int data;
	char ch;
	int  data1;
}Node;
#pragma pack()

struct s 
{
	int a1;
	int b1;
	Node c1;
};

int main()
{

	Node n1 = { 1,'2',78};
	int arr1[] = {1,2,3,4,5,6,7,8,9,10};
	int arr2[10] = {0};
	printf("%d\0", sizeof(arr1));
	//my_memcpy(arr2, arr1, 20);
	return 0;
}
